﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace Gestion
{
    // Clientes. Forma de Pago
    enum FormaPago : int
    {
        Efectivo = 1,
        Tarjeta = 2,
        Transferencia = 3
    }

    class clsComunGestion
    {
        // Método para cargar la combo de Provincias que recibimos como parámetro
        public static void CargaComboProvincias(ref ComboBox cboMiCombo, Boolean filaVacia)
        {
            // Combo
            DataTable dt;   // Tabla de datos que se asignará a la combo
            DataRow dr;     // Fila de datos de la tabla

            dt = new DataTable("Tabla");
            dt.Columns.Add("Cod");      // Columnas que se cargarán en la combo
            dt.Columns.Add("Des");

            // Conexión con la base de datos
            MySqlConnection miConexion;
            MySqlDataReader miReader;

            // Consulta SQL
            MySqlCommand miComando;
            String strSQL;

            // Crear la conexión con la base de datos 
            miConexion = new MySqlConnection();

            try
            {
                // Asignar la cadena de conexión a la base de datos
                miConexion.ConnectionString = clsComun.getCadenaConexionBD();

                // Abrir la conexión
                miConexion.Open();

                // Preparar el comando con la consulta a ejecutar
                strSQL = "select codigo, descripcion from provincias order by descripcion";
                miComando = new MySqlCommand(strSQL, miConexion);

                // Ejecutar la consulta y almacenar el resultado en el objeto Reader 
                miReader = miComando.ExecuteReader();

                // Si se quiere cargar una fila vacía
                if (filaVacia)
                {
                    // Cargar una línea vacía
                    dr = dt.NewRow();
                    dr["Cod"] = 0;      // Código
                    dr["Des"] = "";     // Descripción
                    dt.Rows.Add(dr);
                }

                // Recorrer los resultados de la consulta
                while (miReader.Read())
                {
                    // Cargar una nueva línea
                    dr = dt.NewRow();
                    dr["Cod"] = miReader.GetInt32("codigo");        // Código de la provincia
                    dr["Des"] = miReader.GetString("descripcion");  // Descripción de la provincia
                    dt.Rows.Add(dr);
                }
                
                // Cargar el DataTable en la Combo
                cboMiCombo.DataSource = dt;

                cboMiCombo.ValueMember = "Cod";     // Columna que devuelve la combo
                cboMiCombo.DisplayMember = "Des";   // Columna que visualiza la combo

                // Cerrar el objeto Reader
                miReader.Close();
            }
            catch (Exception ex)
            {
                // En caso de error, mostrar el mensaje
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                // Desconectar de la base de datos
                miConexion.Close();
            }

        }
    }
}
